#pragma once

class CMainFrame;

class CBaseState:
	public CNameObject
{
protected:
	CDOSSimpleMessage *							m_pCurHandleMsg;
	CEasyMap<MSG_ID_TYPE,DOS_MSG_HANDLE_INFO>	m_MsgFnMap;
	CMainFrame *								m_pMainFrame;
public:
	CBaseState(CMainFrame * pMainFrame);
	virtual ~CBaseState(void);

	CD3DDevice * GetD3DDevice();
	CD3DSceneRender * GetSceneRender();
	CD3DUIRender * GetUIRender();
	CD3DGUI * GetGUI();
	CMainFrame * GetMainFrame();

	virtual bool Init();
	virtual void Destory();
	virtual int Update(float Time);
	virtual BOOL OnDOSMessage(CDOSSimpleMessage * pMessage);
	virtual bool OnWMSG(MSG* pMsg);
};
